/* Autore: Nicola Agosti */
/*
Scrivi un programma in C che chieda all'utente di inserire il proprio nome e cognome (al massimo 50 caratteri)
e stampi a video il nome e il cognome su due righe diverse dopo averne rimosse le vocali.

Ad esempio se l'utente inserisse "Paolo Rossi", il programma dovrebbe stampare a video:
Pl
Rss
*/

#define _CRT_SECURE_NO_WARNINGS /* Necessario se utilizziamo Visual Studio */

#include <stdio.h>
#include <stdlib.h>

#define MAX_CARATTERI 50

int main()
{
	char nomeCognome[MAX_CARATTERI + 1], nome[MAX_CARATTERI + 1], cognome[MAX_CARATTERI + 1];
	char nomeNoVocali[MAX_CARATTERI + 1], cognomeNoVocali[MAX_CARATTERI + 1];
	char vocali[11] = "aAeEiIoOuU";
	int i, j, k;
		
	/* Inserimento di nome e cognome */
	printf("Inserisci il tuo nome e il tuo cognome: ");
	fgets(nomeCognome, MAX_CARATTERI + 1, stdin);

	/*
	Separo il nome e il cognome utilizzando la funzione "sscanf".

	"sscanf":
	  - funziona come la "scanf" solo che legge i dati da un vettore di caratteri (stringa) e
	  non dalla tastiera;
	  - a differenza della "fgets" legge per parole e non per righe, cioč la lettura non termina solo
	  quando si va a capo, ma anche quando viene inserito uno spazio;
	  - il segnaposto per leggere le stringhe č il "%s";
	  - quando si leggono delle stringhe davanti al nome della variabile NON si deve mettere la "&".
	*/
	sscanf(nomeCognome, "%s%s", nome, cognome);

	/* Elimino le vocali dal nome */
	for (i = 0, j = 0; nome[i] != '\0'; i++)
	{
		/* Se la lettera del nome č una consonante la copio in "nomeNoVocali" */
		switch (nome[i])
		{
		case 'a': case 'A':
		case 'e': case 'E':
		case 'i': case 'I':
		case 'o': case 'O':
		case 'u': case 'U':
			break;

		default:

			/* Copio la consonante nella stringa finale */
			nomeNoVocali[j] = nome[i];
			j++;
		}
	}
	nomeNoVocali[j] = '\0'; /* DEVO aggiungere il '\0' al termine della stringa che ho creato manualmente */

	/* Elimino le vocali dal cognome */
	for (i = 0, j = 0; cognome[i] != '\0'; i++)
	{
		/* Se la lettera del cognome NON č una vocale la copio in "cognomeNoVocali" */
		for (k = 0; k < 11; k++)
		{
			/* Se ho trovato una vocale esco dal ciclo */
			if (cognome[i] == vocali[k])
			{
				break;
			}
		}

		/*
		Se non ho terminato il ciclo, cioč se "k" all'uscita del ciclo č minore di 11 
		vuol dire che sono uscito a causa del "break" e quindi che ho trovato una vocale.
		*/
		if (k >= 11)
		{
			/* Copio la consonante nella stringa finale */
			cognomeNoVocali[j] = cognome[i];
			j++;
		}
	}
	cognomeNoVocali[j] = '\0'; /* DEVO aggiungere il '\0' al termine della stringa che ho creato manualmente */

	/* Visualizzo nome e cognome senza vocali e su due righe diverse */
	printf("\n%s\n%s", nomeNoVocali, cognomeNoVocali);
	
	return 0;
}